/** require-directory 一次性导入指定路径的全部路由
 *  process.cwd() 运行nodejs当前根目录
 *  static 定义静态方法，通过类本身/this调用方法 不会被实例继承 this指向类不是实例。
 *  注意：非静态方法中不能通过this调用，而要通过类本身调用
*/
const Router = require('koa-router')
const requireDirectory = require('require-directory')

class InitManager {
  static initcore(app) {
    InitManager.app = app
    InitManager.initrouters()
  }
  static initrouters() {
    const apiDirectory = `${process.cwd()}/api`
    requireDirectory(module, apiDirectory, {
      visit: whenLoadMoudules
    })

    function whenLoadMoudules(obj) {
      if (obj instanceof Router) { // 判断api文件内是否为路由模块
        InitManager.app.use(obj.routes())
      }
    }
  }
}

module.exports = InitManager